Oracle Real Application Clusters(RAC)では、共有リソース(クラスタウェア共有ディスクに存在するすべてのデータファイル、制御ファイル、PFILEおよびREDOログ・ファイルを含む)を持つ1つのOracleデータベースに複数のOracleインスタンスでアクセスできます。RACでは、高可用性が提供されるとともに、読取り/書込み一貫性およびロード・バランシングが処理されます。
Fast Application Notification(FAN)は、Oracle Database 10g リリース2でOracle Call Interface(OCI)に統合されたRAC機能です。RACおよびFANの詳細は、『Oracle Database Oracle ClusterwareおよびOracle Real Application Clusters管理およびデプロイメント・ガイド』を参照してください。FANによって、FANイベントをサブスクライブするアプリケーションに対するクラスタでの変更に関する情報がパブリッシュされます。また、次に示す非効率な動作が排除されます。
Cache Connectでは、FANがない場合、Oracle障害の通知の受信に数分かかる可能性があります。
透過的アプリケーション・フェイルオーバー(TAF)は、障害発生後にアプリケーションを再接続する方法を指定できるOracle Net Servicesの機能です。Cache Connectは、FANと統合されたOCIを使用してOracleイベントの通知を受信します。TAFの詳細は、『Oracle Database Net Services管理者ガイド』を参照してください。OCIアプリケーションでは、次のいずれかのタイプのOracle Netフェイルオーバー機能を使用できます。
Cache Connectを使用すると、ユーザーの介入なしでOracle障害から迅速にリカバリできます。Cache Connectは、Oracle Database 10g リリース2のサーバーのRAC環境で使用できます。Oracleクライアントは、Oracle9i リリース2またはOracle Database 10g リリース2のいずれでもかまいません。Oracleデータベースのリリースの詳細は、「RAC環境でCache Connectを使用する場合の制限」を参照してください。
Cache Connectの動作は、TAFのアクションおよびTAFの構成方法によって異なります。デフォルトでは、RACCallback接続属性によってTAFおよびFANコールバックが登録されます。TAFおよびFAN機能が不要な場合は、接続文字列でRACCallbackを0に設定します。
表8.1に、異なるTAFフェイルオーバー・タイプが指定されたRAC環境でのCache Connect機能および処理の動作を示します。これらの動作は、Oracle9i リリース2とOracle Database 10g リリース2のクライアントで同じです。ただし、Oracle Database 10g リリース2では、FANが有効になっている場合にCache Connectでノード障害の通知が即時に受信される点が異なります。
機能または処理
|
TAFフェイルオーバー・タイプ
|
Oracleデータベースで接続障害が発生した後のCache Connectの動作
|
---|---|---|
自動リフレッシュ | NONE | キャッシュ・エージェントが、自動的に停止して再起動し、Oracleサービスに対して接続が確立できるようになるまで待機します。この動作は、Cache Connect to Oracleリリース6.0.1およびRAC以外の環境でのCache Connectの場合と同様です。 |
自動リフレッシュ | SESSION | 次のいずれかの状態が発生します。 · 障害が発生したすべての接続がリカバリされます。実行中だった自動リフレッシュ処理がロールバックされ、再度試行されます。 · キャッシュ・エージェントが、自動的に停止して再起動し、Oracleサービスに接続が確立されるまで待機します。この動作は、Cache Connect to Oracleリリース6.0.1およびRAC以外の環境でのCache Connectの場合と同様です。 |
自動リフレッシュ | SELECT | 次のいずれかの状態が発生します。 · 接続障害が発生した時点から自動リフレッシュが再開されます。 · 実行中だった自動リフレッシュ処理がロールバックされ、再度試行されます。 · キャッシュ・エージェントが、自動的に停止して再起動し、Oracleサービスに接続が確立されるまで待機します。この動作は、Cache Connect to Oracleリリース6.0.1の場合と同様です。 |
パススルー、SWT、伝播およびフラッシュ | NONE | 接続が失われたことがアプリケーションに通知され、アプリケーションでTimesTen接続をロールバックする必要があります。次のパススルー処理中に、Cache ConnectによってOracleデータベースへの再接続が試行されます。変更されたすべてのセッション属性が失われます。この動作は、Cache Connect to Oracleリリース6.0.1およびRAC以外の環境でのCache Connectの場合と同様です。 |
パススルー、SWT、伝播およびフラッシュ | SESSION | 次のいずれかの状態が発生します。 · Oracleデータベースへの接続がリカバリされます。失われた接続でDML処理またはロック処理が行われていた場合は、エラーが発生するため、ユーザーはトランザクションをロールバックする必要があります。行われていなかった場合は、ロールバックせずに続行できます。 · 接続が失われたことがアプリケーションに通知され、アプリケーションでTimesTen接続をロールバックする必要があります。次のパススルー処理中に、Cache ConnectによってOracleデータベースへの再接続が試行されます。変更されたすべてのセッション属性が失われます。この動作は、Cache Connect to Oracleリリース6.0.1およびRAC以外の環境でのCache Connectの場合と同様です。 |
パススルー | SELECT | Oracleデータベースへの接続がリカバリされます。失われた接続でDML処理またはロック処理が行われていた場合は、エラーが発生するため、ユーザーはトランザクションをロールバックする必要があります。行われていなかった場合は、ロールバックせずに続行できます。 |
SWT、伝播およびフラッシュ | SELECT | 次のいずれかの状態が発生します。 · Oracleデータベースへの接続がリカバリされます。失われた接続でDML処理またはロック処理が行われていた場合は、エラーが発生するため、ユーザーはトランザクションをロールバックする必要があります。行われていなかった場合は、ロールバックせずに続行できます。 · 接続が失われたことがアプリケーションに通知され、アプリケーションでTimesTen接続をロールバックする必要があります。次のパススルー処理中に、Cache ConnectによってOracleデータベースへの再接続が試行されます。変更されたすべてのセッション属性が失われます。この動作は、Cache Connect to Oracleリリース6.0.1およびRAC以外の環境でのCache Connectの場合と同様です。 |
ロードおよびリフレッシュ | NONE | 接続が失われたことを示すエラーがアプリケーションに通知されます。 |
ロードおよびリフレッシュ | SESSION | 次のいずれかの状態が発生します。 · ロードが正常に行われます。 · Oracleフェッチを実行できないことを示すエラーが返されます。 |
ロードおよびリフレッシュ | SELECT | 次のいずれかの状態が発生します。 · Oracleカーソルがオープンしていてそのカーソルがリカバリされている場合、またはOracleカーソルがオープンしていない場合は、ロードが正常に行われます。 · TAFによって、セッションまたはオープンしているOracleカーソルがリカバリできない場合は、エラーが返されます。 注意: TAFフェイルオーバー・タイプがSESSIONの場合より、エラーが返される可能性は低くなります。 |
AWT | NONE | AWTのレプリケーション・レシーバ・スレッドが終了します。新しいスレッドが作成され、そのスレッドによってOracleデータベースへの接続が試行されます。 |
AWT | SESSION、SELECT | 次のいずれかの状態が発生します。 · 接続がリカバリされ、コミットされていないDML処理がその接続に存在する場合は、バッチ処理またはトランザクションがロールバックされ、再度実行されます。 · 接続がリカバリされ、コミットされていないDML処理がない場合は、処理が続行されます。 |
エージング | NONE、SESSION、SELECT | Cache Connect to Oracleリリース6.0.1およびRAC以外の環境でのCache Connectの場合と同様に動作します。詳細は、「DURATION」を参照してください。 |